Several leading technology organizations are investing in building technologies that sell “software-as-a-service”. Such services provide access to shared storage, for example, database systems, and/or computing resources to clients, or subscribers. Within multi-tier e-commerce systems, different resources may be allocated to subscribers and/or their applications from whole machines, to CPU, to memory, to network bandwidth, and to I/O capacity.
Database systems managing large amounts of data on behalf of users may distribute and/or replicate that data across two or more machines, often in different locations, for any of a number of reasons, including security issues, disaster prevention and recovery issues, data locality and availability issues, etc. These machines may be configured in any number of ways, including as a shared resource pool. Interaction between client applications and database servers typically includes read operations, write operations, and update operations.
Further, insuring the durability and reliability of data, which may include monitoring and restoring the stored data, is difficult to achieve without human intervention.